草庐IT

OpenGL 波浪特效

全部标签

c++ - OpenGL:未定义 VBO 函数

我正在尝试使用OpenGLVBO,但是与其使用相关的函数,glGenBuffersARB()例如,都是未定义的。立即模式功能当然可以,只有这些。我正在使用VS2010,带有SFML图书馆。该库中的包含header之一包括和,可执行文件链接到glu32.lib和opengl32.lib为什么只缺少这些功能,我如何才能包括它们的使用? 最佳答案 GLEW将定义它们,其他GL扩展库也是如此。可在此处找到信息:http://www.opengl.org/resources/features/OGLextensions/Usinganexte

c++ - 使用顶点数组对象渲染三角形什么都不显示(OpenGL)

我使用OpenGL3.2、GLFW和GLEW。我尝试在OSX(10.8.2)上使用VAO和简单着色器渲染简单的三角形,但没有任何显示,只有白屏。着色器编译正常,GLEW初始化正常,glGetString(GL_VERSION)显示3.2,尝试在每一行之后放置glGetError,它没有报告任何错误。我不知道我做错了什么。这是代码:#include"include/GL/glew.h"#include"include/GL/glfw.h"#include#includeGLuintprogram;char*textFileRead(char*fn){FILE*fp;char*conten

c++ - 运行 QT Creator 时 OpenGL 的问题

我正在尝试使用QTCreator运行OpenGL的基本示例来为窗口着色。但是,调用OpenGL指令时我在编译中遇到错误:glClearColor(1.0,1.0,0.0,1.0);*.pro文件是下一个:QT+=coreguiopenglgreaterThan(QT_MAJOR_VERSION,4):QT+=widgetsTARGET=test2TEMPLATE=appSOURCES+=main.cpp\mainwindow.cpp\glwidget.cppHEADERS+=mainwindow.h\glwidget.hFORMS+=mainwindow.uiglwidget.h是下一

c++ - 在另一个线程中绘制 OpenGL

我已经为Windows创建了一个简单的OpenGL应用程序。它创建一个窗口,然后使用OpenGL命令在其上绘制一个三角形。这按预期工作。稍后我想将我的绘图代码封装到一个DLL中,这样它就可以在C#WinForms应用程序中用于绘制到WinForm。为此,我将绘图代码移到了单独的类和线程中。我的想法是,我可以将我的类“附加”到任何现有窗口并让我的线程绘制到它。可悲的是,事情似乎并没有那么简单。一旦我将窗口创建和绘制内容分离到不同的线程中,屏幕就会保持全黑。绘图调用似乎不再起作用。有没有办法让我的绘图完全独立于窗口创建和主UI线程?编辑:这是一些代码:-)这是我的渲染器(从UI线程调用时工

c++ - 基本的 OpenGL 光照问题

我认为这是一个非常愚蠢的新手问题,但我是图形和openGL方面的新手。绘制了一个球体并在附近放置了一个光源,同时指定了环境光,我开始试验光和Material值并得出了一个令人惊讶的结论:我们使用glColor*指定的颜色无关紧要在启用照明时完全没有。相反,等效物是Material的环境成分。这个结论正确吗?谢谢 最佳答案 如果启用光照,则Material颜色(好吧,颜色-有几种颜色用于对光的不同类型的响应)被使用。Material颜色由glMaterial*函数指定。如果你想重用你的代码,你可以使用glEnable(GL_COLOR

c++ - 如何从 OpenGL 加载图像 BACK?

我已经成功地将图像作为纹理加载到OpenGL(我使用GTKmm库中的Gdk::Pixbuf),但我不知道如何从OpenGL获取修改后的图像并将其加载到Gdk::Pixbuf...我想在OpenGL中修改图像并将它们保存在硬盘上。有一些代码:Glib::RefPtrpixmap=Gdk::Pixbuf::create_from_file("image.jpg");GLuinttexture[1];glBindTexture(GL_TEXTURE_2D,texture[1]);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LI

c++ - 在 OpenGL 对象包装器中自动绑定(bind)

我倾向于将OpenGL对象包装在它们自己的类中。在OpenGL中有绑定(bind)的概念,你绑定(bind)你的对象,用它做一些事情然后解除绑定(bind)。例如,一个纹理:glBindTexture(GL_TEXTURE_2D,TextureColorbufferName);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_BASE_LEVEL,0);glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAX_LEVEL,1000);glBindTexture(GL_TEXTURE_2D,0);包装这将是这样的:textu

c++ - 使用 openGL 渲染/动画 2d 的最佳方式?

很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visitthehelpcenter.关闭10年前。所以我正在用C++制作游戏。我正处在岔路口。我现在正在计划如何处理动画和优化渲染。我正在使用即时模式进行渲染,有人告诉我速度很慢。我一直在寻找替代方案,然后发现了很多不同的方法,并且根据您处理动画的方式而有所不同,所以我想我只想问一下什么是兼顾两者的最佳方法。对于动画,我考虑过使用存储在内存中的图像序列,但只测试了50个图像序列,内存猛增到200MB,而之前是30个。(没有泄漏,它保持在200,

c++ - OpenGL 着色器版本编译错误

我在OpenGL中编译一个简单的顶点着色器时遇到问题,我收到以下错误消息:error(#106)GL2不支持版本号错误(#279)布局限定符“位置”无效我想我一定是使用了错误的GL2版本,但我不知道如何找到我的版本号或去哪里升级(是的,我试图搜索答案。)附件是一份拷贝我的着色器代码仅供引用和我的openGL信息。#version330corelayout(location=0)invec3Position;voidmain(){gl_Position.xyz=Position;}供应商:ATITechnologiesInc.渲染器:ATIRadeonHD5700系列版本:3.2.975

c++ - 烟花opengl

我正在尝试使用OpenGL创建一个烟花(我必须在位置(0,0,0)中放置100个粒子)Particle*p[100];voidBuild(){for(inti=1;ipos.x=0.0;p[i]->pos.y=1.0;p[i]->pos.z=5.0;p[i]=AddParticle(*p[i]);}}但我收到以下错误:ass.exe中0x771b15de处的未处理异常:0xC0000005:访问冲突写入位置0x00000000。这是剩下的代码:classParticle{public:Vector3pos;//currentpositionVector3vel;//velocityVe